#include "key.h"
#include "delay.h"

u8 key_val;
void Key_Init(void) // 按键初始化
{

	GPIO_InitTypeDef GPIO_InitStructure;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);	 // 开启AFIO时钟
	GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); // 禁止JTAG功能

	RCC_APB2PeriphClockCmd(K_E_CLK | K_D_CLK | K_U_CLK | K_m_CLK, ENABLE); // 使能PORTA,PORTE时钟

	GPIO_InitStructure.GPIO_Pin = K_E_PIN;			  //
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;	  // 设置成上拉输入GPIO_Mode_IPD; //
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // IO口速度为50MHz
	GPIO_Init(K_E_PORT, &GPIO_InitStructure);		  // 初始化GPIOE2,3,4

	GPIO_InitStructure.GPIO_Pin = K_D_PIN;			  //
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;	  // 设置成上拉输入GPIO_Mode_IPD; //
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // IO口速度为50MHz
	GPIO_Init(K_D_PORT, &GPIO_InitStructure);		  // 初始化GPIOE2,3,4

	GPIO_InitStructure.GPIO_Pin = K_U_PIN;			  //
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;	  // 设置成上拉输入GPIO_Mode_IPD; //
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // IO口速度为50MHz
	GPIO_Init(K_U_PORT, &GPIO_InitStructure);		  // 初始化GPIOE2,3,4

	GPIO_InitStructure.GPIO_Pin = K_m_PIN;			  //
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;	  // 设置成上拉输入GPIO_Mode_IPD; //
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // IO口速度为50MHz
	GPIO_Init(K_m_PORT, &GPIO_InitStructure);		  // 初始化GPIOE2,3,4
}
/*

*/
void Key_Scan(void) // 按键扫描
{
	if (K_E == 0 || K_D == 0 || K_U == 0 || K_m == 0)
	{
		delay_ms(50); // 去抖动
		if (K_E == 0 || K_D == 0 || K_U == 0 || K_m == 0)
		{

			if (K_E == 0)
				key_val = KV_EXIT;
			else if (K_D == 0)
				key_val = KV_DN;
			else if (K_U == 0)
				key_val = KV_UP;
			else if (K_m == 0)
				key_val = KV_menu;
			delay_ms(30); // 去抖动
			while (K_E == 0 || K_D == 0 || K_U == 0 || K_m == 0)
				;
		}
	}
}
